// 该函数通过计算每个人生日不重复的概率并累乘，得出没有重复生日的概率，然后用1 - prob_no_shared得到至少两个人生日相同的概率。
pub fn new_birthday_probability(n: u32) -> f64 {
    // 如果人数超过365人，必定有重复生日
    if n > 365 {
        return 1.0;
    }
    // 计算没有重复生日的概率
    // `prob_no_shared` 是一个从 1 到 n 的迭代器，表示每个人生日不重复的概率
    let prob_no_shared: f64 = (0..n)
        .map(|i| (365 - i) as f64 / 365.0)  // 对于每个人，计算其生日不重复的概率
        .product();  // 计算所有人的不重复生日的累乘结果，即所有人都没有重复生日的概率

    // 1 - prob_no_shared 计算有至少两个人生日相同的概率
    1.0 - prob_no_shared
}
